【问题描述】
如何使用OID作为分组字段并使用聚集查询该字段的count数?
记录类似如下:
{
"_id":{

"$oid":"5c2c165cd08e8a48af889cff" 

},
"ECM_BUSI_FILE_SCANUSER":"08190242",
...
"FILE_OID":{

"$oid":"5c2c165cd08e8a48af889cfe" 

},
"SYS_MIN_VERSION":1,
"SYS_MAX_VERSION":2147483647
}
记录使用FILE_OID字段进行聚集,FILE_OID是lob文件的oid字段,记录中该字段有重复非唯一。
【解决办法】
OID 即对象 ID 为一个12字节的BSON 数据类型,包括如下内容:
OID 说明具体可参考文档:http://doc.sequoiadb.com/cn/i...

  1. SDB shell 中按 OID 值做分组,使用 aggregate 做聚集查询,并计数:

db.cs.cl.aggregate({$group:{OID:"$OID", Total:{$count:"$OID"}}})
aggregate 使用参考文档:http://doc.sequoiadb.com/cn/s...

  1. 使用内置 SQL 语句:db.exec("select count(OID) as Total from XXX group by OID")

group by 使用参考文档:http://doc.sequoiadb.com/cn/s...
【解决办法】
OID 即对象 ID 为一个12字节的BSON 数据类型,包括如下内容:

4 字节精确到秒的时间戳 
3 字节系统(物理机)标示 
2 字节进程 ID 
3 字节由随机数起始的序列号 

OID 说明具体可参考文档:http://doc.sequoiadb.com/cn/i...

  1. SDB shell 中按 OID 值做分组,使用 aggregate 做聚集查询,并计数:

db.cs.cl.aggregate({$group:{OID:"$OID", Total:{$count:"$OID"}}})
aggregate 使用参考文档:http://doc.sequoiadb.com/cn/s...

  1. 使用内置 SQL 语句:db.exec("select count(OID) as Total from XXX group by OID")

group by 使用参考文档:http://doc.sequoiadb.com/cn/s...


RaymondRMork
1 声望2 粉丝